
package controllers;
import vos.*;
import play.db.jpa.Transactional;
import play.libs.Json;
import sanduche.play.shared.SanController;
import play.mvc.Http.Request;
import play.mvc.Http.Response;
import play.mvc.Http.Session;
import play.mvc.Result;
import models.*;
public class ProfesorController extends SanController {
	@Transactional(readOnly=true)
	public static Result getMateriasGrado(){
		try{
			Session session = session();
			return ok(Json.toJson(sanduche.controllers.ProfesorController.getMateriasGrado(session)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional(readOnly=true)
	public static Result getGrados(){
		try{
			Session session = session();
			return ok(Json.toJson(sanduche.controllers.ProfesorController.getGrados(session)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional(readOnly=true)
	public static Result getCurso(Long idCurso){
		try{
			
			return ok(Json.toJson(sanduche.controllers.ProfesorController.getCurso(idCurso)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional(readOnly=true)
	public static Result getMaterias(){
		try{
			Session session = session();
			return ok(Json.toJson(sanduche.controllers.ProfesorController.getMaterias(session)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional(readOnly=true)
	public static Result getEstudiantesCurso(Long idCurso){
		try{
			
			return ok(Json.toJson(sanduche.controllers.ProfesorController.getEstudiantesCurso(idCurso)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional(readOnly=true)
	public static Result getMisAsignaturas(){
		try{
			Session session = session();
			return ok(Json.toJson(sanduche.controllers.ProfesorController.getMisAsignaturas(session)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional(readOnly=true)
	public static Result getCalificacionesPeriodo(Long idMateria, Long idCurso){
		try{
			Session session = session();
			return ok(Json.toJson(sanduche.controllers.ProfesorController.getCalificacionesPeriodo(session, idMateria, idCurso)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional(readOnly=true)
	public static Result getCalificacionesPeriodos(Long idMateria, Long idCurso){
		try{
			Session session = session();
			return ok(Json.toJson(sanduche.controllers.ProfesorController.getCalificacionesPeriodos(session, idMateria, idCurso)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional(readOnly=true)
	public static Result getIndicadores(Long idMateria, Long idGrado){
		try{
			Session session = session();
			return ok(Json.toJson(sanduche.controllers.ProfesorController.getIndicadores(session, idMateria, idGrado)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional
	public static Result newIndicador(Long idMateria, Long idGrado){
		try{
			Indicador body = Json.fromJson(request().body().asJson(),Indicador.class);
			Session session = session();
			return ok(Json.toJson(sanduche.controllers.ProfesorController.newIndicador(session, body, idMateria, idGrado)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional
	public static Result updateIndicador(Long idMateria, Long idGrado, String categoria, Integer consecutivo){
		try{
			Indicador body = Json.fromJson(request().body().asJson(),Indicador.class);
			Session session = session();
			sanduche.controllers.ProfesorController.updateIndicador(session, body, idMateria, idGrado, categoria, consecutivo);return ok();
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional
	public static Result deleteIndicador(Long idMateria, Long idGrado, String categoria, Integer consecutivo){
		try{
			Session session = session();
			sanduche.controllers.ProfesorController.deleteIndicador(session, idMateria, idGrado, categoria, consecutivo);return ok();
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional(readOnly=true)
	public static Result getIndicadoresEstudiantes(Long idCurso, Long idMateria){
		try{
			Session session = session();
			return ok(Json.toJson(sanduche.controllers.ProfesorController.getIndicadoresEstudiantes(session, idCurso, idMateria)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional
	public static Result newIndicadorEstudiante(){
		try{
			IndicadorEstudiantePeriodo body = Json.fromJson(request().body().asJson(),IndicadorEstudiantePeriodo.class);
			Session session = session();
			return ok(Json.toJson(sanduche.controllers.ProfesorController.newIndicadorEstudiante(session, body)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional
	public static Result deleteIndicadorEstudiante(Long idEstudiante, Long idMateria, Long idGrado, String categoria, Integer consecutivo){
		try{
			Session session = session();
			sanduche.controllers.ProfesorController.deleteIndicadorEstudiante(session, idEstudiante, idMateria, idGrado, categoria, consecutivo);return ok();
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional
	public static Result setCalificacionPeriodo(){
		try{
			CalificacionPeriodo body = Json.fromJson(request().body().asJson(),CalificacionPeriodo.class);
			Session session = session();
			return ok(Json.toJson(sanduche.controllers.ProfesorController.setCalificacionPeriodo(session, body)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional(readOnly=true)
	public static Result getMyInfo(){
		try{
			Session session = session();
			return ok(Json.toJson(sanduche.controllers.ProfesorController.getMyInfo(session)));
		}catch(Throwable e){return parseError(e);}
	}
 
	@Transactional(readOnly=true)
	public static Result getCursos(){
		try{
			Session session = session();
			return ok(Json.toJson(sanduche.controllers.ProfesorController.getCursos(session)));
		}catch(Throwable e){return parseError(e);}
	}
}